// 版权归Go作者所有。版权所有。
// 此源代码的使用受BSD样式的约束
// 可以在许可证文件中找到的许可证。

package sym

import "cmd/internal/dwarf"

// LoaderSym保存一个loader.Sym值。我们不能提及这一点
// 从sym包中键入，因为加载程序导入sym。
type LoaderSym int

// CompilationUnit表示已编译的一组源文件
// 在一起由于Go包中的所有Go源都是一起编译的，
// 每个包有一个CompliationUnit，代表所有的Go源代码
// 该程序包，每个程序集文件加一个。
// None
// 同样，每个库中的每个对象文件都有一个编译单元
// 由链接器加载。
// None
// 这些用于DWARF和pclntab生成。
type CompilationUnit struct {
	Lib       *Library      // 我们的图书馆
	PclnIndex int           // pclntab中此CU的索引
	PCs       []dwarf.Range // PC范围，相对于Textp[0]
	DWInfo    *dwarf.DWDie  // 铜根模
	FileTable []string      // 此编译单元中使用的文件表。

	Consts    LoaderSym   // 封装常数
	FuncDIEs  []LoaderSym // 函数子树
	VarDIEs   []LoaderSym // 全局变量模具
	AbsFnDIEs []LoaderSym // 抽象函数子树
	RangeSyms []LoaderSym // 调试范围的符号
	Textp     []LoaderSym // 此CU中的文本符号
}
